package cn.duli.xianer.dao;

import cn.duli.xianer.pojo.Shopcar;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface ShopcarMapper {

    // 添加购物车
    int save(Shopcar shopcar);

    // 根据购物车id查询该条购物车
    Shopcar findById(@Param("sId") Integer sId);

    // 根据商品id查询该条购物车
    Shopcar findByGoodId(@Param("gId") Integer gId);

    // 根据用户id获取该用户的购物车商品列表
    List<Shopcar> findByUserId(@Param("uId") Integer uId);

    // 根据购物车id单个选中此条购物车（修改商品为选中状态）
    void updateChecked(@Param("sId") Integer sId);

    // 根据购物车id取消单个选中此条购物车（修改商品为未选中状态）
    void updateNotCheck(@Param("sId") Integer sId);

    // 根据购物车id删除此条购物车
    void deleteById(@Param("sId") Integer sId);

    // 根据用户id获取用户购物车商品数量
    int findCountByUserId(@Param("uId") Integer uId);

    // 获取用户选中的商品数量
    int findCheckCountByUserId(@Param("uId") Integer uId);

    // 根据用户id获取用户选中的商品列表
    List<Shopcar> findGoodsByUserId(@Param("uId") Integer uId);

    // 根据用户id和商品id删除此条购物车
    void deleteByUidAndGid(@Param("uId") Integer uId, @Param("gId") Integer gId);

    // 根据用户id和商品id查询此条购物车
    Shopcar findByGidAndUid(@Param("uId") Integer uId, @Param("gId") Integer gId);

    // 根据用户id和商品id将此条购物车选中
    void updateCheckedByUidAndGid(@Param("uId") Integer uId, @Param("gId") Integer gId);

}